package com.yqg.manage.service.impl;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yqg.manage.entity.SignTemplate;
import com.yqg.manage.mapper.SignTemplateMapper;
import com.yqg.manage.service.ISignTemplateService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;

import javax.annotation.Resource;
import java.io.File;
import java.io.IOException;

/**
 * @Author: 小宇
 * @CreateTime: 2023/8/16 17:19
 */
@Slf4j
@Service
public class SignTemplateImpl extends ServiceImpl<SignTemplateMapper, SignTemplate> implements ISignTemplateService {

    @Value("${filename.separator}")
    private String separator;
    @Value("${upload.path}")
    private  String path;
    @Resource
    private SignTemplateMapper signTemplateMapper;

    /**
     * 上传文件并返回文件信息DTO
     *
     * @param file 要上传的文件
     * @return 上传成功后的文件信息DTO，如果文件为null，则返回一个默认文件信息DTO
     */
    @Override
    public String uploadSign(MultipartFile file) {
        //获取原始数据名
        String originalFilename = file.getOriginalFilename();
        //构造唯一的文件名（不能重复）
        assert originalFilename != null;
        int index = originalFilename.lastIndexOf(".");
        String extname = originalFilename.substring(index);//找到 . 的索引
        String fileName = originalFilename.substring(0,index);//分离 文件名
        String timestampStr = String.valueOf(System.currentTimeMillis());//当前时间戳
        String newFileName = fileName +  separator+timestampStr + extname;//原文件名加时间戳
        log.info("新文件名：{}", newFileName);
        SignTemplate signTemplate=new SignTemplate();
        //转存到本地
        String newPath = path + newFileName;
        try {
            file.transferTo(new File(newPath));
        } catch (IOException e) {
            e.printStackTrace();
        }

        return newPath;
    }
}
